#ifndef PLAYLIST_H
#define PLAYLIST_H

#include <QWidget>
#include <QMenuBar>
#include <QVBoxLayout>
#include <QListWidget>
#include <QTreeWidget>

class PlayList : public QWidget
{
    Q_OBJECT
public:
    explicit PlayList(QWidget *parent = 0);
    void initMenuBar();
    void initView();
    void initMenus();

signals:
    
public slots:
    void addFiles();
    void addFold();
    void removeSelectFiles();
    void removeAllFiles();
    void addNewPlayList();
    void addPlayList();
    void openPlayList();
    void savePlayList();
    void removePlayList();
    void saveAllPlayList();
    void sortByDisplayTitle();
    void sortByFileName();
    void sortByFilePathName();
    void sortByFileDate();
    void sortByPlayTime();
    void sortByRandom();
    void searchSong();
    void searchNext();
    void editCut();
    void editCopy();
    void editPaste();
    void editMoveToList();
    void editCopyToList();
    void editSelectAll();
    void editDiselectAll();
    void editSelectOpp();
    void modeSingleLoop();
    void modeSinglePlay();
    void modePlayQueue();
    void modePlayLoop();
    void modePlayRandom();

private:
    void initAddMenu();
    void initRemoveMenu();
    void initListMenu();
    void initSortMenu();
    void initSearchMenu();
    void initEditMenu();
    void initPlayModeMenu();

private:
    QMenuBar m_menuBar;
    QTabWidget m_playList;
    QTreeWidget m_playListContent;
    QVBoxLayout m_mainLyt;
    QMenu m_addMenu;
    QMenu m_removeMenu;
    QMenu m_listMenu;
    QMenu m_sortMenu;
    QMenu m_searchMenu;
    QMenu m_editMenu;
    QMenu m_playModeMenu;
};

#endif // PLAYLIST_H
